package top.pmwly.common.reslut;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import top.pmwly.common.constant.ReslutEnum;

/**
 * @author Herther
 * @version 1.0.0
 * @ClassName ReslutBean.java
 * @Description 结果集返回
 * @createTime 2021年09月21日 14:06:00
 */
@AllArgsConstructor
@Data
@ApiModel(value="结果集返回对象", description="结果集返回对象")
public class ReslutBean {

    /**
     * 状态码
     */
    @ApiModelProperty(value = "状态码")
    private Long code;
    /**
     * 消息
     */
    @ApiModelProperty(value = "消息")
    private String msg;
    /**
     * 返回的数据
     */
    @ApiModelProperty(value = "数据")
    private Object data;

    /**
     * 返回状态消息，不返回数据
     * @param code
     * @param msg
     */
    public ReslutBean(Long code, String msg) {
        this.code = code;
        this.msg = msg;
        this.data = null;
    }

    /**
     * 成功结果 无数据返回
     * @param reslutEnum
     * @return
     */
    public static ReslutBean SUCCESS(ReslutEnum reslutEnum){
        return new ReslutBean(reslutEnum.getCode(),reslutEnum.getMsg());
    }

    /**
     * 成功带数据
     * @return
     */
    public static ReslutBean SUCCESS(ReslutEnum reslutEnum,Object data){
        return  new ReslutBean(reslutEnum.getCode(), reslutEnum.getMsg(),data);
    }

    /**
     * 失败异常返回
     * @return
     */
    public static ReslutBean FAIL(ReslutEnum reslutEnum){
        return new ReslutBean(reslutEnum.getCode(), reslutEnum.getMsg());
    }
    /**
     * 异常返回 带对象
     * @return
     */
    public static ReslutBean FAIL(ReslutEnum reslutEnum,Object data){
        return  new ReslutBean(reslutEnum.getCode(), reslutEnum.getMsg(),data);
    }

}
